import 'package:built_collection/built_collection.dart';
import 'package:dartz/dartz.dart';
import 'package:equatable/equatable.dart';
import 'package:learning_content_admin_pannel.core/core/domain/entities/learning_content/collection_list_item/collection_list_item.dart';
import 'package:learning_content_admin_pannel.core/core/domain/entities/learning_content/lexical_item/lexical_item.dart';

part 'entities/learning_content_restoration_from_file_failures.dart';

part 'entities/learning_content_restoration_from_file_result.dart';

abstract class LearningContentBackupRepository {
  Future<void> backupLearningContentToFile({
    required BuiltList<LexicalItem> lexicalItems,
    required BuiltList<CollectionListItem> collectionListItems,
  });

  Future<
      Either<LearningContentRestorationFromFileFailure,
          LearningContentRestorationFromFileResult?>> restoreLearningContentFromFile();
}
